Flash memory is a type of non-volatile memory. It is able to hold or persist data in the absence of a power supply. This is as opposed to volatile memories such as dynamic random access memory (DRAM) that lose data when their power supplies are removed.
Flash memory stores data to transistors that have floating gates. The floating gates are able to hold an electric charge. A transistor having a charged floating gate illustratively represents a binary 0, and a transistor having an uncharged floating gate illustratively represents a binary 1.
Before storing or writing data to a group of flash memory transistors, the group is commonly “erased.” One example of an erasing process sets all of the transistors in the group to a common state before they are programmed (e.g. the transistors are set to 1). The erasing process illustratively includes de-charging the floating gates of transistors having charged floating gates and leaving the other transistor floating gates (i.e. the uncharged floating gates) as they were.
One drawback of flash memory has been limited lifetimes. For example, flash memory may be limited to a certain number of erase/write cycles.